- // MIR for `main` before GVN
+ // MIR for `main` after GVN
  
  fn main() -> () {
      let mut _0: ();
      let _1: i32;
      let mut _3: i32;
      scope 1 {
          debug a => _1;
          let mut _2: (i32, i32);
          scope 2 {
              debug x => _2;
              let _4: i32;
              scope 3 {
                  debug y => _4;
                  let _5: i32;
                  scope 4 {
                      debug z => _5;
                  }
              }
          }
      }
  
      bb0: {
-         StorageLive(_1);
+         nop;
          _1 = foo() -> [return: bb1, unwind continue];
      }
  
      bb1: {
          StorageLive(_2);
-         _2 = (const 1_i32, const 2_i32);
+         _2 = const (1_i32, 2_i32);
          StorageLive(_3);
          _3 = _1;
-         (_2.1: i32) = move _3;
+         (_2.1: i32) = _1;
          StorageDead(_3);
          StorageLive(_4);
          _4 = (_2.1: i32);
          StorageLive(_5);
          _5 = (_2.0: i32);
          _0 = const ();
          StorageDead(_5);
          StorageDead(_4);
          StorageDead(_2);
-         StorageDead(_1);
+         nop;
          return;
      }
+ }
+ 
+ ALLOC0 (size: 8, align: 4) {
+     01 00 00 00 02 00 00 00                         │ ........
  }
  
